package com.modular.system.dict;

import cn.hutool.core.lang.Opt;
import cn.hutool.core.util.ObjectUtil;
import com.c.opt.ComOpt;
import ntd.util.config.common.exception.ComException;

import java.util.ArrayList;
import java.util.List;

public class OptDict extends ComOpt<DictDo> {

    public OptDict() {
        super("common_dict");
    }

    /**
     * 根据code查询字典
     * @param code
     * @return
     */
    public DictDo getByCode(String code) {
        return query().eq("code", Opt.ofBlankAble(code).orElseThrow(() -> new ComException("字典code不能为空!"))).getBean();
    }

    /**
     * 根据 code 查询字典子类
     * @param code
     * @return
     */
    public List<DictDo> listByCode(String code) {
        DictDo dict = getByCode(code);
        if (ObjectUtil.isNull(dict)) {
            return new ArrayList<>();
        }
        return query().eq("pid", dict.getId()).listBean();
    }
}
